<?php
// Copyright 2012 @Wondershare.com
// $Id: common.inc.php 24762 2012-09-03 14:21:04Z xuwh $
////////////////////////////////////////////////////////////////////////////////
//
//                            多个站点公用common
//
//////////////////////////////////////////////////////////////////////////////// 
/**
 * 常用常量设置
 */
define('WSC_NAME', 'WSCoins'); // 平台币名称
define('WSC_BASE_CURRENCT', func::get_cfg('base_currency')); // 平台使用默认币种名称
define('WSC_RATE', func::get_cfg('wsc_rate')); // 平台币兑换默认币种比例
if(!defined('SITE_URL'))  define('SITE_URL', strtolower($_SERVER['HTTP_HOST']));
define('ENVIRON', func::get_cfg('environ'));
define('WSC_BASE_COUNTRY',func::get_cfg('base_country'));
//是否顯示線上客服
define('ONLINE_US',func::get_cfg('online_us'));
//Third_party_login第3方登录.
define('THIRD_PARTY_PATH',MODULES_PATH.'third_party/');

if(!defined('COOKIE_DOMAIN'))
	define('COOKIE_DOMAIN', func::get_root_domain(ENVIRON==='development'?3:2));
header('Content-Type:text/html;charset=utf-8');
//时区设置
$timezone=func::get_cfg('timezone');
date_default_timezone_set($timezone);
// 根据是否有cookie存在，自动开启session
if (! defined('NO_USE_SESSION')) func::start_session(TRUE);

//错误及异常处理
$ini_set=func::get_cfg('ini_set');
if($ini_set)
{
	$error_reporting = $ini_set['error_reporting']?:0;
	error_reporting($error_reporting);
	foreach ($ini_set as $k=>$v)ini_set($k,$v);
}


//新增mb_internal_encoding  指定编码为UTF-8，其他地方用到mb_strimwidth则不用指定编码了.
if(function_exists('mb_internal_encoding')){
	mb_internal_encoding('utf-8');
}


//如果是欧美，默认语言是en-us.Asia的话，默认语言是zh-cn   游戏，平台默认语言
if(stripos(SITE_URL, '.com')){
	$lang	=	"en-us";
}else{
	$lang	=	"zh-cn";
}
define('DEFAULT_GAME_LANGUAGE', $lang );


set_error_handler('error_handler');// 产品状态error_reporting为0时，不再转异常，不显示错误
set_exception_handler('exception_handler');

//处理多余参数
if(count($_GET)>1)func::parse_remain_args();
//取当前PHP设置的时区偏差设置到数据库连接
$hours=date_timezone::get_offset_hours($timezone,TRUE);
func::get_db()->exec("SET time_zone='{$hours}';");

//升级时使用限制ip
/*
$ip=func::get_ip();
$in_arr=in_array($ip,array('202.134.75.230','174.133.27.138','174.133.27.140','183.12.164.197'));
if(!$in_arr && strncmp('/news', $_SERVER['REQUEST_URI'],5)!==0)
{
        header('Location: http://www.wsgame.com/news/view/277');exit();
}
//*/
////////////////////////////////////////////////////////////////////////////////
//
// 以下为常用函数部分
//
////////////////////////////////////////////////////////////////////////////////
/**
 * PHP错误接收函数，转为异常，异常再由异常处理接收
 * 
 * @param $errno integer       	
 * @param $errstr string       	
 * @param $errfile string       	
 * @param $errline string       	
 * @throws ErrorException
 *
 */
function error_handler ($errno ,$errstr ,$errfile ,$errline)
{
	if (error_reporting() & $errno)
	{
		throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
	}else{
		error_log("Error:{$errstr} (code:{$errno}) at:{$errfile} line:{$errline}");
	}
}

/**
 * 接收异常
 * 
 * @param $e Exception       	
 *
 */
function exception_handler (Exception $e)
{
	Error_Handler::exec($e);
}

/**
 * 多语言支持
 * $pack为语言包，如果分目录，需要foo.bar，则目录为:app/i18n/foo/bar.php
 * $string为语言包的key
 * $values为串中的参数，默认为空，如果有参数，则语言串如：hello :name, welcome to wsgame.com!
 * $values参数为 array('name'=>'Jack',.....)
 * 
 * @param $string string       	
 * @param $values mixed       	
 * @param $lang string       	
 */
function __ ($pack ,$string ,$values = NULL ,$lang = NULL)
{
	return I18n::__($pack, $string, $values, $lang);
}

